import {BaseModel} from "@/model/BaseModel";


export enum EmployeeSexEnum {
    // 男
    Man = 1,
    // 女
    Woman = 2,
    // 未知
    UnKnow = 3
}

export enum EmployeeTypeEnum {
    // 医生
    Doctor = 'D',
    // 护士
    Nurse = 'N',
    // 药师
    YAO = 'Y'
}


export enum EmployeeDutyEnum {
    //1、医生，2、科主任，3、全科
    MEMBER = 1,
    LEADER = 2,
    ALL = 3
}


export class EmployeeModel extends BaseModel {
    /**
     * 主键
     */
    public id:string;

    /**
     * 员工代码
     */

    public code:string;

    /**
     * 员工名称
     */

    public name:string;

    /**
     * 员工照片
     */

    public photo:string;

    /**
     * 员工性别，1:男,2:女,3:未知
     */

    public sex:number;

    /**
     * 员工出生日期
     */

    public birthday:Date;

    /**
     * 联系电话
     */

    public phone:string;

    /**
     * 状态：0-停用，1-在用，2-废弃
     */

    public state:number;

    /**
     * 拼音码
     */

    public spellCode:string;

    /**
     * 五笔码
     */

    public wbCode:string;

    /**
     * 搜索关键字
     */

    public keywords:string;

    /**
     * 员工类型代码，"D": 医生，"N"：护士, "Y“:药师
     */

    public typeCode:string;


    /**
     * 1、大学专科，2大学本科，3硕士研究生，4博士研究生，6博士后
     */

    public eduCode:number;

    /**
     * 学历名称
     */

    public eduName:string;

    /**
     * 职务代码，医生：1: 实习医士、2:医师、3:主治（主管）医师、4:副主任医师、5:主任医师；
     护士：1: 实习护士、2:护师、3:主管护师、4:副主任护师、5:主任护师；
     */

    public levelCode:number;

    /**
     * 职称名称
     */

    public levelName:string;

    public dutyCode: number;

    public dutyName: string;

    /**
     * 医生能力介绍
     */

    public ability:string;

    /**
     * 医生介绍
     */

    public remark:string;

    /**
     * 默认1
     */

    public sortNo:number;

    /**
     * 创建者
     */

    public createId:string;

    public createName: string;

    /**
     * 创建时间
     */

    public createTime:Date;

    /**
     * 更新者
     */

    public updateId:string;

    public updateName: string;

    /**
     * 更新时间
     */

    public updateTime:Date;

    /**
     * 机构ID
     */

    public hospitalId:string;

    /**
     * 源系统主键，数据同步时根据该主键判断数据是更新操作还是添加操作
     */

    public sourceKey:string;

    /**
     * 同步时间
     */

    public etlTime:Date;

    /**
     * 客户ID
     */

    public customerId:string;


    public static DutyMap = [
        {label: '组长', value: EmployeeDutyEnum.LEADER},
        {label: '成员', value: EmployeeDutyEnum.MEMBER},
        {label: '全科', value: EmployeeDutyEnum.ALL}
    ]

    public static SexMap:{label: string, value: number}[] = [
        {label: '男', value: EmployeeSexEnum.Man},
        {label: '女', value: EmployeeSexEnum.Woman},
        {label: '未知', value: EmployeeSexEnum.UnKnow},
    ]

    public static TypeMap: {label: string, value: string}[] = [
        {label: '医师', value: EmployeeTypeEnum.Doctor},
        {label: '护士', value: EmployeeTypeEnum.Nurse},
        {label: '药师', value: EmployeeTypeEnum.YAO},
    ]




    public static getSex (sex): {label: string, value: number} {
        return this.SexMap.find(item => item.value === sex)
    }

    public static getType(typeCode): {label: string, value: string} {
        return this.TypeMap.find(item => item.value === typeCode)
    }

    public static getDuty(dutyCode): {label: string, value: number} {
        return this.DutyMap.find(item => item.value === dutyCode)
    }
}